package 随机取数;

import java.util.Arrays;
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] numbers;
        System.out.println("请输入一个数（用于定义原数组的长度）");
        int n = 0;
        n = sc.nextInt();
        numbers = new int[n];
        for (int i = 0; i < n; i++) {
            numbers[i] = i + 1;
        }

        int r;
        int k = 0;
        System.out.println("请输入您想要猜的次数");
        System.out.println("猜数的次数一定要小于原数组的长度");
        k = sc.nextInt();
        int[] array = new int[k];

        for (int i = 0; i < k; i++) {
            r = (int)(Math.random() * n);  //哎，这就有点离谱了，我只不过是没用括号把数字括起来，它产生的随机数就基本是一定的
            array[i] = numbers[r];         //把数字括起来就恢复正常了，离谱
            numbers[r] = numbers[n - 1];   //说实话这个随机取数还是有点小问题的
            n--;
        }

        System.out.println("系统随机生成的数分别是");
        for (int num: array){
            System.out.printf("%d\t",num);
        }
        System.out.println();
        System.out.println(Arrays.toString(array));
        sc.close();
    }
}
